/*
 * MemCompParque.cpp
 *
 *  Created on: 28/07/2014
 *      Author: migue
 */

#include "MemCompParque.h"
#include <syslog.h>
#include <unistd.h>
#include <stdio.h>
#include <stdlib.h>

#include <sys/types.h>
#include <sys/wait.h>

MemCompParque::MemCompParque(int idCliente, int idBroker) :
	IpcRemoto(idCliente, -1)
{
	// No se necesita identificador para escribir en el parque
}

MemCompParque::~MemCompParque() {
}

int MemCompParque::leerCantPersonas() {
	_msj._ipc.op_ipc = TIPO_PARQUE_LEER_CANTPERSONAS;

	enviarPedido();

	if (_msj._ipc.resp < 0) {
		syslog(LOG_ERR," Error; Se leyo cantidad de personas negativas en parque:%i ", _msj._ipc.resp);
	}

	return _msj._ipc.resp;

}
void MemCompParque::escribirCantPersonas(int cant) {
	_msj._ipc.op_ipc = TIPO_PARQUE_ESCRIBIR_CANTPERSONAS;
	_msj._ipc.valor = cant;

	if (cant < 0) {
		syslog(LOG_ERR," Error; Se esta por escribir cantidad de personas negativa: %i ", cant);
	}

	enviarPedido();
}

int MemCompParque::leerBusesRepuesto() {
	_msj._ipc.op_ipc = TIPO_PARQUE_LEER_BUSESDEREPUESTO;

	enviarPedido();

	return _msj._ipc.resp;
}
void MemCompParque::escribirBusesRepuesto(int cant) {
	_msj._ipc.op_ipc = TIPO_PARQUE_ESCRIBIR_BUSESDEREPUESTO;
	_msj._ipc.valor = cant;

	enviarPedido();
}

bool MemCompParque::parqueAbierto() {
	_msj._ipc.op_ipc = TIPO_PARQUE_LEER_PARQUEABIERTO;
	enviarPedido();
	return (bool) _msj._ipc.resp;
}

void MemCompParque::parqueAbierto(bool abierto) {
	_msj._ipc.op_ipc = TIPO_PARQUE_ESCRIBIR_PARQUEABIERTO;
	_msj._ipc.valor = (int) abierto;

	enviarPedido();
}

int MemCompParque::leerUltimoTicket() {
	_msj._ipc.op_ipc = TIPO_PARQUE_LEER_ULTIMOTICKET;
	enviarPedido();

	return _msj._ipc.resp;
}

void MemCompParque::escribirUltimoTicket(int ticket) {
	_msj._ipc.op_ipc = TIPO_PARQUE_ESCRIBIR_ULTIMOTICKET;
	_msj._ipc.valor = ticket;
	enviarPedido();
}
